#!/usr/bin/env Node

//Node CLI 应用入口文件必须要有这样的文件头
// 如果是Linux 或者 macOS 系统下还需要修改此文件的读写权限为 755
// 具体就是通过 chmod 755 cli.js实现修改 

// console.log('cli working')

// 脚手架的工作过程：
// 1.通过命令行交互询问用户问题
// 2.根据用户返回结果生成文件

const fs = require('fs')
const path = require('path')
const inquirer = require('inquirer')  //载入inquirer模块
const ejs = require('ejs')  //载入ejs模块

 //发起命令行询问
inquirer.prompt([
    {
        type: 'input',
        name: 'name',
        message: 'Prokect name?'
    }
])
.then (anwsers => {
    // console.log(anwsers)
    // 根据用户返回结果生成文件

    // 模板目录
    const tmplDir = path.join(__dirname,'templates')
    // 目标目录
    const destDir = process.cwd()

    //读取模板目录下全部文件输出到目标目录
    fs.readdir(tmplDir,(err, files) => {
        if (err) throw err
        files.forEach(file => {
            // console.log(file)  每个文件的相对路径
            
            // 通过模板引擎渲染文件  ejs 

            ejs.renderFile(path.join(tmplDir,file),anwsers,(err,result) => {
                if (err) throw err
                // console.log(result)
                // 将结果写入目标文件路径
                fs.writeFileSync(path.join(destDir,file),result)
            })
        });
    })
})